import java.util.HashMap;

/**
 * 
 * @author leahden
 * recursive method
 * 
 * 
 * 
 */
public class NFA<K> {
	
	HashMap<String,NFA<K>> outConnections;
	HashMap<String,NFA<K>> inConnections;
	boolean endState;
	
	
	public NFA()
	{
		
	}//NFA constructor
	
	public NFA<K> NFAParserHelper(String specFileName)
	{
		return new NFA<K>();
	}//end NFA constructor
	
	public NFA<K> NFAParser(String token)
	{
		return new NFA<K>();
	}//end recursive method
	
	/**
	 * @param token1 The first token to be unioned
	 * @param token2 The second token to be unioned
	 * 
	 * @return A String representation of the two unioned tokens.
	 * 
	 * This method takes in two tokens, unions them, and then returns the unioned String.
	 */
	public void Or(String token1, String token2)
	{
		
	}//end Or method
	
	public void Star()
	{
		
	}//end Star method
	
	public void Plus()
	{
		
	}//end Plus method
	
	public void Concatenate()
	{
		
	}//end Concatenate method

	public HashMap<String,NFA<K>> getOutConnections()
	{
		return outConnections;
	}//end outConnections getter
	
	public HashMap<String,NFA<K>> getInConnections()
	{
		return inConnections;
	}//end inConnections getter
	
	public boolean isEndState()
	{
		return endState;
	}//end endState checker
}
